#include<iostream>
#include<queue>
#include<string>
using namespace std;
// zdl:: 这就是一道简单的搜索类题目，对以前的我来说，这是有难度的，到那时兑现在的我来说，这只是小菜一碟！！
const int N = 110;
char a[N][N];
bool st[N][N];
int n;

// 方向矢量
int dx[] = {1, -1, 0, 0, 1, 1, -1, -1};
int dy[] = {0,  0, 1, -1, -1, 1, -1, 1};
string s = "yizhong";
int main()
{
    cin >> n;
    for (int i = 1; i <= n; i++)
    {
        for (int j = 1; j <= n; j++) 
        {
            cin >> a[i][j];
        }
    }
    for (int i = 1; i <= n; i++)
    {
        for (int j = 1; j <= n; j++) 
        {
            // 波波老师这样的方法确实厉害，在递归的时候我们会在正确结果的方向下进行回溯@！！
            if (a[i][j] == 'y')
            {
                for (int k = 0; k < 8; k++)
                {
                    int x = i, y = j;
                    int cnt = 0;
                    while (x >= 1 && x <= n && y >= 1 && y <= n && s[cnt] == a[x][y] && cnt < 7)
                    {
                        cnt++;
                        x += dx[k]; y += dy[k];
                    }
                    if (cnt == 7)
                    {
                        x = i; y = j;
                        while (cnt--)
                        {
                            st[x][y] = true;
                            x += dx[k]; y += dy[k];
                        }
                    }
                }
            }
        }
    }
    for (int i = 1; i <= n; i++)
    {
        for (int j = 1; j <= n; j++) 
        {
            if (st[i][j]) cout << a[i][j];
            else cout << '*';
        }
        cout << endl;
    }
    return 0;
}